Merge branch 'tamron' of http://git.xfoto.com.cn/Kodo/kodo into tamron

FFIB месяцев %!s(int64=6): %!d(string=назад)
Родитель
Сommit
dd3139ed0a

+ 2 - 1
api/activity/activity_urls.py

@@ -4,6 +4,7 @@ from django.conf.urls import include, url
4 4
 
5 5
 from api.activity import contribution_admin_views
6 6
 
7
+
7 8
 urlpatterns = [
8 9
     url(r'^admin/member/activity/contribute/delete$', contribution_admin_views.member_activity_contribution_delete_api, name='member_activity_contribution_delete_api'),
9
-]
10
+]

+ 2 - 2
api/activity/contribution_admin_views.py

@@ -5,10 +5,10 @@ from django_query import get_query_value
5 5
 from django_response import response
6 6
 
7 7
 from kodo.decorators import check_admin
8
-
9 8
 from member.models import MemberActivityContributionInfo
10 9
 from utils.error.errno_utils import MemberActivityContributionStatusCode
11 10
 
11
+
12 12
 @check_admin
13 13
 @transaction.atomic
14 14
 def member_activity_contribution_delete_api(request, administrator):
@@ -22,4 +22,4 @@ def member_activity_contribution_delete_api(request, administrator):
22 22
     contribution.status = False
23 23
     contribution.save()
24 24
 
25
-    return response(200, 'Member Activity Contribution  Delete Success', u'会员活动投稿删除成功')
25
+    return response(200, 'Member Activity Contribution  Delete Success', u'会员活动投稿删除成功')

+ 7 - 7
api/lensman/contract_admin_views.py

@@ -4,19 +4,19 @@ from django.conf import settings
4 4
 from django_logit import logit
5 5
 from django_response import response
6 6
 
7
-from kodo.decorators import check_admin
8
-from utils.error.errno_utils import ContractStatusCode, TencentCloudStatusCode
9
-from utils.tencentcloud.ess import describe_file_urls
10
-
7
+from account.models import LensmanInfo, UserInfo
11 8
 from api.lensman import contract_mp_views
12
-
13 9
 from apps.contract.models import LensmanContributionContractInfo
14
-from account.models import LensmanInfo, UserInfo
10
+from kodo.decorators import check_admin
15 11
 from member.models import MemberActivityInfo
16 12
 from pre.custom_message import sendwxasubscribemessage
13
+from utils.error.errno_utils import ContractStatusCode, TencentCloudStatusCode
14
+from utils.tencentcloud.ess import describe_file_urls
15
+
17 16
 
18 17
 WECHAT = settings.WECHAT
19 18
 
19
+
20 20
 @logit(res=True)
21 21
 @check_admin
22 22
 def get_signed_contribtion_contract_file_api(request, administrator):
@@ -84,4 +84,4 @@ def start_contribution_contract_sign_api(request, administrator):
84 84
 
85 85
     res = sendwxasubscribemessage(openid=user.openid_miniapp, template_id=settings.TEMPLATE_ID_CONTRIBUTION_CONTRACT, data=data, miniprogram_state=None, lang=None, page='/pages/member/activity/activity?flow_id={}&contribution_id={}'.format(flow_id, contribution_id))
86 86
 
87
-    return response(200, 'Start Contribution Contract Sign Success', u'发起投稿授权书签署成功', data={})
87
+    return response(200, 'Start Contribution Contract Sign Success', u'发起投稿授权书签署成功', data={})

+ 5 - 3
api/lensman/contract_mp_views.py

@@ -17,6 +17,7 @@ from utils.error.errno_utils import ContractStatusCode
17 17
 from utils.redis.rimage import get_images_data
18 18
 from utils.tencentcloud.ess import (callback_decode, create_document, create_flow, create_scheme_url, start_flow,
19 19
                                     test_upload_document_files, upload_document_files)
20
+from utils.thumbnail_utils import make_thumbnail2
20 21
 
21 22
 
22 23
 @logit(res=True)
@@ -71,6 +72,7 @@ def get_contribtion_contract_api(request):
71 72
         'scheme_url': scheme_url
72 73
     })
73 74
 
75
+
74 76
 def get_contribtion_contract_sign_mppath_api(request):
75 77
     user_id = request.POST.get('user_id', '')
76 78
     flow_id = request.POST.get('flow_id', '')
@@ -99,6 +101,7 @@ def get_contribtion_contract_sign_mppath_api(request):
99 101
 def generate_file_from_qiniu(file_url):
100 102
     try:
101 103
         data = requests.get(file_url).content
104
+        data = make_thumbnail2(data)
102 105
         data = base64.b64encode(data).decode('utf-8')
103 106
     except Exception:
104 107
         data = None
@@ -163,9 +166,8 @@ def create_contribution_contract_flow(lensman):
163 166
 
164 167
 def create_contribution_contract_document(lensman, contribution_id, file_ids, FlowId):
165 168
     # 创建电子签文档 https://qian.tencent.com/developers/companyApis/startFlows/CreateDocument
166
-    IMAGE_COMPONENTIDS = ['ComponentId_37', 'ComponentId_38','ComponentId_39','ComponentId_40','ComponentId_41','ComponentId_42',
167
-                           'ComponentId_43','ComponentId_44','ComponentId_45','ComponentId_46','ComponentId_47','ComponentId_48','ComponentId_49','ComponentId_50','ComponentId_51','ComponentId_52','ComponentId_53','ComponentId_54','ComponentId_55', 'ComponentId_55', 'ComponentId_56', 'ComponentId_57', 'ComponentId_58', 'ComponentId_59', 'ComponentId_60', 'ComponentId_9', 'ComponentId_10', 'ComponentId_11', 'ComponentId_12', 'ComponentId_13', 'ComponentId_14', 'ComponentId_15', 'ComponentId_16', 'ComponentId_17', 'ComponentId_18', 'ComponentId_19', 'ComponentId_20', 'ComponentId_21', 'ComponentId_22', 'ComponentId_23', 'ComponentId_24', 'ComponentId_25', 'ComponentId_26', 'ComponentId_27', 'ComponentId_28','ComponentId_29', 'ComponentId_30', 'ComponentId_31', 'ComponentId_32']
168
-     
169
+    IMAGE_COMPONENTIDS = ['ComponentId_37', 'ComponentId_38', 'ComponentId_39', 'ComponentId_40', 'ComponentId_41', 'ComponentId_42', 'ComponentId_43', 'ComponentId_44', 'ComponentId_45', 'ComponentId_46', 'ComponentId_47', 'ComponentId_48', 'ComponentId_49', 'ComponentId_50', 'ComponentId_51', 'ComponentId_52', 'ComponentId_53', 'ComponentId_54', 'ComponentId_55', 'ComponentId_55', 'ComponentId_56', 'ComponentId_57', 'ComponentId_58', 'ComponentId_59', 'ComponentId_60', 'ComponentId_9', 'ComponentId_10', 'ComponentId_11', 'ComponentId_12', 'ComponentId_13', 'ComponentId_14', 'ComponentId_15', 'ComponentId_16', 'ComponentId_17', 'ComponentId_18', 'ComponentId_19', 'ComponentId_20', 'ComponentId_21', 'ComponentId_22', 'ComponentId_23', 'ComponentId_24', 'ComponentId_25', 'ComponentId_26', 'ComponentId_27', 'ComponentId_28', 'ComponentId_29', 'ComponentId_30', 'ComponentId_31', 'ComponentId_32']
170
+
169 171
     try:
170 172
         amount = LensmanContributionActivityIncomeExpensesInfo.objects.get(contribution_id=contribution_id, lensman_id=lensman.lensman_id).amount
171 173
     except LensmanContributionActivityIncomeExpensesInfo.DoesNotExist:

+ 1 - 1
api/lensman/lensman_urls.py

@@ -9,7 +9,7 @@ urlpatterns = [
9 9
     url(r'^mp/lensman/contribution/contract/get$', contract_mp_views.get_contribtion_contract_api, name='get_contribtion_contract_api'),
10 10
     url(r'^mp/lensman/contribution/contract/status/get$', contract_mp_views.get_contribtion_contract_status_api, name='get_contribtion_contract_status_api'),
11 11
     url(r'^mp/lensman/contribution/contract/sign/mppach/get$', contract_mp_views.get_contribtion_contract_sign_mppath_api, name='get_contribtion_contract_sign_mppath_api'),
12
-    
12
+
13 13
     url(r'^mp/ess/callback$', contract_mp_views.ess_callback, name='ess_callback'),
14 14
 ]
15 15
 

+ 1 - 0
api/lensman_admin_views.py

@@ -75,6 +75,7 @@ def lensman_audit(request, administrator):
75 75
 
76 76
     return response(200, 'Lensman Audit Pass Suceess', u'摄影师审核通过')
77 77
 
78
+
78 79
 @logit
79 80
 @check_admin
80 81
 def lensman_delete(request, administrator):

+ 1 - 1
api/urls.py

@@ -393,4 +393,4 @@ urlpatterns += [
393 393
 # 会员活动模块
394 394
 urlpatterns += [
395 395
     url(r'', include(('api.activity.activity_urls', 'activity'), namespace='activity')),
396
-]
396
+]

+ 1 - 1
maintenance/models.py

@@ -112,7 +112,7 @@ class MaintenaceInfo(BaseModelMixin):
112 112
             'model_id': self.model_id,
113 113
             'model_name': model.model_name if model else '',
114 114
             'model_full_name': model.model_full_name if model else '',
115
-            #'model_image_url': model.image2_url,
115
+            # 'model_image_url': model.image2_url,
116 116
             'log_id': self.log_id,
117 117
             'sn': self.sn,
118 118
             'desc': self.desc,

+ 1 - 1
member/activity_mp_views.py

@@ -153,7 +153,7 @@ def activity_contribute_create(request):
153 153
         try:
154 154
             lensman = LensmanInfo.objects.get(user_id=user_id, status=True)
155 155
             user_name = lensman.name
156
-        except:
156
+        except LensmanInfo.DoesNotExist:
157 157
             pass
158 158
 
159 159
     try:

+ 0 - 1
utils/tencentcloud/ess.py

@@ -44,7 +44,6 @@ def upload_document_files(files, file_type='png'):
44 44
         file_ids = file_ids + res.FileIds
45 45
         _files = _files[20:]
46 46
 
47
-        
48 47
     return file_ids
49 48
 
50 49
 

+ 24 - 0
utils/thumbnail_utils.py

@@ -4,6 +4,15 @@ from __future__ import division
4 4
 
5 5
 
6 6
 try:
7
+    from cStringIO import StringIO
8
+    from cStringIO import StringIO as BytesIO
9
+except ImportError:
10
+    try:
11
+        from StringIO import StringIO
12
+        from StringIO import StringIO as BytesIO
13
+    except ImportError:
14
+        from io import BytesIO, StringIO
15
+try:
7 16
     from PIL import Image
8 17
 except ImportError:
9 18
     import Image
@@ -17,3 +26,18 @@ def make_thumbnail(im_path, im_thumbnail_path=None, max_width=360):
17 26
     im.thumbnail((thumb_width, thumb_height), Image.ANTIALIAS)
18 27
     im.save(im_thumbnail_path or im_path, im.format or 'JPEG', quality=90)
19 28
     return width, height, thumb_width, thumb_height
29
+
30
+
31
+def make_thumbnail2(data, w=360, h=240):
32
+    im = Image.open(BytesIO(data))
33
+    fmt = im.format.lower()
34
+    width, height = im.size
35
+    if width > height:
36
+        thumb_width, thumb_height = w, height * w / width
37
+    else:
38
+        thumb_width, thumb_height = width * h / height, h
39
+    im.thumbnail((thumb_width, thumb_height), Image.ANTIALIAS)
40
+    out = BytesIO()
41
+    im.save(out, format=fmt)
42
+    data = out.getvalue()
43
+    return data